package e.odbo.data.service.base;

import com.openbravo.data.basic.BasicException;
import e.odbo.data.bean.I_ViewBean;
import e.odbo.data.dsl.Select;
import e.odbo.data.dsl.operation.QueryOperation;
import e.odbo.data.dsl.query.QBFParameter;
import e.odbo.data.dsl.query.QBFParameters;

import java.util.List;

public interface I_ViewBeanService<T extends I_ViewBean> {

    List<T> list() throws BasicException;

    List<T> list(QueryOperation queryOperation) throws BasicException;

    List<T> query(QBFParameter filter) throws BasicException;

    List<T> query(QBFParameter filter, QueryOperation queryOperation) throws BasicException;

    List<T> query(QBFParameters qbfParameters) throws BasicException;

    List<T> query(QBFParameters qbfParameters, QueryOperation queryOperation) throws BasicException;

    List<T> listBySelect(Select select)throws BasicException;

    int count()throws BasicException;

    int count(QBFParameters filter) throws BasicException;
}
